export const dataURLtoBlob = (dataURL) => {
  // 将Base64解码为字节
  let byteString = atob(dataURL.split(',')[1])
  // 创建一个ArrayBuffer视图
  let arrayBuffer = new ArrayBuffer(byteString.length)
  let intArray = new Uint8Array(arrayBuffer)

  for (let i = 0; i < byteString.length; i++) {
    intArray[i] = byteString.charCodeAt(i)
  }

  // 使用ArrayBuffer创建Blob
  return new Blob([intArray], { type: 'image/png' })
}
/**
 * 将Blob对象转换为文件对象。
 *
 * 此函数通过为Blob对象添加lastModifiedDate和name属性，将其转换为文件对象。
 * 这对于处理从输入字段接收的文件或在客户端生成的文件非常有用。
 *
 * @param {Blob} blob - 要转换为文件的Blob对象。Blob对象是一个不可变的、原始的二进制数据集合。
 * @param {string} fileName - 指定生成的文件对象的名称。
 * @returns {File} 返回一个新的文件对象，该对象基于提供的Blob对象并包含了fileName和lastModifiedDate属性。
 */
export const blobToFile = (blob, fileName) => {
  blob.lastModifiedDate = new Date()
  blob.name = fileName
  return blob
}
